<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- 
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

 http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License. 
-->
<html>
<head>
    <link type="text/css" rel="stylesheet" href="https://struts.apache.org/css/default.css">
    <style type="text/css">
        .dp-highlighter {
            width:95% !important;
        }
    </style>
    <style type="text/css">
        .footer {
            background-image:      url('https://cwiki.apache.org/confluence/images/border/border_bottom.gif');
            background-repeat:     repeat-x;
            background-position:   left top;
            padding-top:           4px;
            color:                 #666;
        }
    </style>
    <link href='https://struts.apache.org/highlighter/style/shCoreStruts.css' rel='stylesheet' type='text/css' />
    <link href='https://struts.apache.org/highlighter/style/shThemeStruts.css' rel='stylesheet' type='text/css' />
    <script src='https://struts.apache.org/highlighter/js/shCore.js' type='text/javascript'></script>
    <script src='https://struts.apache.org/highlighter/js/shBrushPlain.js' type='text/javascript'></script>
    <script src='https://struts.apache.org/highlighter/js/shBrushXml.js' type='text/javascript'></script>
    <script src='https://struts.apache.org/highlighter/js/shBrushJava.js' type='text/javascript'></script>
    <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js' type='text/javascript'></script>
    <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js' type='text/javascript'></script>
    <script src='https://struts.apache.org/highlighter/js/shBrushBash.js' type='text/javascript'></script>
    <script type="text/javascript">
        SyntaxHighlighter.defaults['toolbar'] = false;
        SyntaxHighlighter.all();
    </script>
    <script type="text/javascript" language="javascript">
        var hide = null;
        var show = null;
        var children = null;

        function init() {
            /* Search form initialization */
            var form = document.forms['search'];
            if (form != null) {
                form.elements['domains'].value = location.hostname;
                form.elements['sitesearch'].value = location.hostname;
            }

            /* Children initialization */
            hide = document.getElementById('hide');
            show = document.getElementById('show');
            children = document.all != null ?
                    document.all['children'] :
                    document.getElementById('children');
            if (children != null) {
                children.style.display = 'none';
                show.style.display = 'inline';
                hide.style.display = 'none';
            }
        }

        function showChildren() {
            children.style.display = 'block';
            show.style.display = 'none';
            hide.style.display = 'inline';
        }

        function hideChildren() {
            children.style.display = 'none';
            show.style.display = 'inline';
            hide.style.display = 'none';
        }
    </script>
    <title>Redirect Action Result</title>
</head>
<body onload="init()">
<table border="0" cellpadding="2" cellspacing="0" width="100%">
    <tr class="topBar">
        <td align="left" valign="middle" class="topBarDiv" align="left" nowrap>
            &nbsp;<a href="home.html">Home</a>&nbsp;&gt;&nbsp;<a href="guides.html">Guides</a>&nbsp;&gt;&nbsp;<a href="core-developers-guide.html">Core Developers Guide</a>&nbsp;&gt;&nbsp;<a href="result-types.html">Result Types</a>&nbsp;&gt;&nbsp;<a href="redirect-action-result.html">Redirect Action Result</a>
        </td>
        <td align="right" valign="middle" nowrap>
            <form name="search" action="https://www.google.com/search" method="get">
                <input type="hidden" name="ie" value="UTF-8" />
                <input type="hidden" name="oe" value="UTF-8" />
                <input type="hidden" name="domains" value="" />
                <input type="hidden" name="sitesearch" value="" />
                <input type="text" name="q" maxlength="255" value="" />
                <input type="submit" name="btnG" value="Google Search" />
            </form>
        </td>
    </tr>
</table>

<div id="PageContent">
    <div class="pageheader" style="padding: 6px 0px 0px 0px;">
        <!-- We'll enable this once we figure out how to access (and save) the logo resource -->
        <!--img src="/wiki/images/confluence_logo.gif" style="float: left; margin: 4px 4px 4px 10px;" border="0"-->
        <div style="margin: 0px 10px 0px 10px" class="smalltext">Apache Struts 2 Documentation</div>
        <div style="margin: 0px 10px 8px 10px"  class="pagetitle">Redirect Action Result</div>

        <div class="greynavbar" align="right" style="padding: 2px 10px; margin: 0px;">
            <a href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=14234">
                <img src="https://cwiki.apache.org/confluence/images/icons/notep_16.gif"
                     height="16" width="16" border="0" align="absmiddle" title="Edit Page"></a>
            <a href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=14234">Edit Page</a>
            &nbsp;
            <a href="https://cwiki.apache.org/confluence/pages/listpages.action?key=WW">
                <img src="https://cwiki.apache.org/confluence/images/icons/browse_space.gif"
                     height="16" width="16" border="0" align="absmiddle" title="Browse Space"></a>
            <a href="https://cwiki.apache.org/confluence/pages/listpages.action?key=WW">Browse Space</a>
            &nbsp;
            <a href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&fromPageId=14234">
                <img src="https://cwiki.apache.org/confluence/images/icons/add_page_16.gif"
                     height="16" width="16" border="0" align="absmiddle" title="Add Page"></a>
            <a href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&fromPageId=14234">Add Page</a>
            &nbsp;
            <a href="https://cwiki.apache.org/confluence/pages/createblogpost.action?spaceKey=WW&fromPageId=14234">
                <img src="https://cwiki.apache.org/confluence/images/icons/add_blogentry_16.gif"
                     height="16" width="16" border="0" align="absmiddle" title="Add News"></a>
            <a href="https://cwiki.apache.org/confluence/pages/createblogpost.action?spaceKey=WW&fromPageId=14234">Add News</a>
        </div>
    </div>

    <div class="pagecontent">
        <div class="wiki-content">
            <div id="ConfluenceContent"><p></p><p>
This result uses the ActionMapper provided by the
ActionMapperFactory to redirect the browser to a URL that invokes the
specified action and (optional) namespace. This is better than the
ServletRedirectResult because it does not require you to encode the
URL patterns processed by the ActionMapper in to your struts.xml
configuration files. This means you can change your URL patterns at any point
and your application will still work. It is strongly recommended that if you
are redirecting to another action, you use this result rather than the
standard redirect result.
</p>

<p></p><p>
See examples below for an example of how request parameters could be passed
in.
</p><div class="confluence-information-macro confluence-information-macro-note"><span class="aui-icon aui-icon-small aui-iconfont-warning confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>See <a shape="rect" href="actionmapper.html">ActionMapper</a> for more details</p></div></div><h1 id="RedirectActionResult-Parameters">Parameters</h1><p>
</p><p></p><ul><li><b>actionName (default)</b> - The name of the action that will be
redirected to.</li><li><b>namespace</b> - Used to determine which namespace the action is in
that we're redirecting to.  If namespace is null, the default will be the
current namespace.</li><li><b>suppressEmptyParameters</b> - Optional boolean (defaults to false) that
can prevent parameters with no values from being included in the redirect
URL.</li><li><b>parse</b> - Boolean, true by default.  If set to false, the actionName
param will not be parsed for Ognl expressions.</li><li><b>anchor</b> - Optional.  Also known as "fragment" or colloquially as
"hash".  You can specify an anchor for a result.</li></ul>
<h1 id="RedirectActionResult-Examples">Examples</h1><p></p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
<script class="brush: xml; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[
&lt;package name=&quot;public&quot; extends=&quot;struts-default&quot;&gt;
    &lt;action name=&quot;login&quot; class=&quot;...&quot;&gt;
        &lt;!-- Redirect to another namespace --&gt;
        &lt;result type=&quot;redirectAction&quot;&gt;
            &lt;param name=&quot;actionName&quot;&gt;dashboard&lt;/param&gt;
            &lt;param name=&quot;namespace&quot;&gt;/secure&lt;/param&gt;
        &lt;/result&gt;
    &lt;/action&gt;
&lt;/package&gt;

&lt;package name=&quot;secure&quot; extends=&quot;struts-default&quot; namespace=&quot;/secure&quot;&gt;
    &lt;-- Redirect to an action in the same namespace --&gt;
    &lt;action name=&quot;dashboard&quot; class=&quot;...&quot;&gt;
        &lt;result&gt;dashboard.jsp&lt;/result&gt;
        &lt;result name=&quot;error&quot; type=&quot;redirectAction&quot;&gt;error&lt;/result&gt;
    &lt;/action&gt;

    &lt;action name=&quot;error&quot; class=&quot;...&quot;&gt;
        &lt;result&gt;error.jsp&lt;/result&gt;
    &lt;/action&gt;
&lt;/package&gt;

&lt;package name=&quot;passingRequestParameters&quot; extends=&quot;struts-default&quot; namespace=&quot;/passingRequestParameters&quot;&gt;
   &lt;!-- Pass parameters (reportType, width and height) --&gt;
   &lt;!--
   The redirectAction url generated will be :
   /genReport/generateReport.action?reportType=pie&amp;amp;width=100&amp;amp;height=100#summary
   --&gt;
   &lt;action name=&quot;gatherReportInfo&quot; class=&quot;...&quot;&gt;
      &lt;result name=&quot;showReportResult&quot; type=&quot;redirectAction&quot;&gt;
         &lt;param name=&quot;actionName&quot;&gt;generateReport&lt;/param&gt;
         &lt;param name=&quot;namespace&quot;&gt;/genReport&lt;/param&gt;
         &lt;param name=&quot;reportType&quot;&gt;pie&lt;/param&gt;
         &lt;param name=&quot;width&quot;&gt;100&lt;/param&gt;
         &lt;param name=&quot;height&quot;&gt;100&lt;/param&gt;
         &lt;param name=&quot;empty&quot;&gt;&lt;/param&gt;
         &lt;param name=&quot;suppressEmptyParameters&quot;&gt;true&lt;/param&gt;
         &lt;param name=&quot;anchor&quot;&gt;summary&lt;/param&gt;
      &lt;/result&gt;
   &lt;/action&gt;
&lt;/package&gt;


]]></script>
</div></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">&lt;!--
	Example of "anchor" param usage in conjunction with "redirectAction" result-type.

	Generated URL: /displayReport.action#SUMMARY
--&gt;

&lt;action name="displayReport"&gt;
	&lt;result&gt;/jsp/displayReport.jsp&lt;/result&gt;
&lt;/action&gt;

&lt;action name="financeReport" class="com.mycompany.reports.FinanceReportAction"&gt; 
	&lt;result name="input"&gt;/jsp/index.jsp&lt;/result&gt;            
	&lt;result name="success" type="redirectAction"&gt;
		&lt;param name="actionName"&gt;displayReport&lt;/param&gt;
		&lt;param name="parse"&gt;false&lt;/param&gt;
		&lt;param name="anchor"&gt;SUMMARY&lt;/param&gt;
	&lt;/result&gt;
&lt;/action&gt;
</pre>
</div></div></div>
        </div>

        
    </div>
</div>
<div class="footer">
    Generated by CXF SiteExporter
</div>
</body>
</html>
